import request from '@/utils/request'

/**
 * Token校验
 */
export function getToken() {
    return request({
        url: '/v1/passport/check',
        method: 'delete'
    })
}

/**
 * 用户登陆
 * @param {object} data 请求参数
 * @param {string} data.username 手机号
 * @param {number} data.login_type 1=手机号登陆
 * @param {string} data.password 密码
 */
export function login(data) {
    data.login_type = data.login_type || 1
    return request({
        url: '/v1/passport/login',
        method: 'post',
        data
    })
}

/**
 * 微信登陆
 * @param {object} data 请求参数
 * @param {string} data.platform 登陆平台 固定为wechat_mpweb
 * @param {number} data.origin 固定为2
 * @param {string} data.data 平台登陆数据 {"code":"string"}
 */
export function WXlogin(data) {
    return request({
        url: '/v1/passport/third/login',
        method: 'post',
        data
    })
}

/**
 * 获取用户信息
 */
export function getInfo() {
    return request({
        url: '/v1/user/profile',
        method: 'get'
    })
}

/**
 * 注册新用户
 * @param {object} data 请求参数
 * @param {string} data.phone 手机号
 * @param {string} data.captcha 验证码
 * @param {string} data.password 密码
 * @param {string} data.nickname 昵称
 */
export function register(data) {
    return request({
        url: '/v1/user/register',
        method: 'post',
        data
    })
}

/**
 * 忘记密码-重置密码手机验证
 * @param {object} data 请求参数
 * @param {string} data.phone 手机号
 * @param {string} data.captcha 验证码
 */
export function forgetPasswordByCode(data) {
    return request({
        url: '/v1/user/forgetpassword/verify',
        method: 'post',
        data
    })
}

/**
 * 忘记密码-重置密码
 * @param {object} data 请求参数
 * @param {string} data.phone 手机号
 * @param {string} data.password 新密码
 */
export function forgetPassword(data) {
    return request({
        url: '/v1/user/forgetpassword/reset',
        method: 'post',
        data
    })
}

/**
 * 修改用户信息
 * @param {object} data 请求参数
 * @param {string} data.nickname 手机号
 * @param {string} data.avatar 头像地址
 * @param {string} data.describe 个人描述
 */
export function putProfile(data) {
    return request({
        url: '/v1/user/profile',
        method: 'put',
        data
    })
}

/**
 * 关注用户
 * @param {object} data 请求参数
 * @param {string} data.uid 关注用户的uid
 */
export function follow(data) {
    return request({
        url: '/v1/user/follow',
        method: 'post',
        data
    })
}

/**
 * 取消关注
 * @param {object} data 请求参数
 * @param {string} data.uid 关注用户的uid
 */
export function unFollow(data) {
    return request({
        url: '/v1/user/unfollow',
        method: 'delete',
        data
    })
}

/**
 * 粉丝列表
 * @param {query} data 请求参数
 * @param {string} data.offset 从多少条开始
 * @param {string} data.count 需要多少条 默认=15
 */
// TODO check params type
export function fans(data) {
    return request({
        url: '/v1/user/fans',
        method: 'get',
        params: data
    })
}

/**
 * 关注列表
 * @param {query} data 请求参数
 * @param {string} data.offset 从多少条开始
 * @param {string} data.count 需要多少条 默认=15
 */
// TODO check params type
export function follows(data) {
    return request({
        url: '/v1/user/follow',
        method: 'get',
        params: data
    })
}

/**
 * 判断是否关注
 * @param {query} data 请求参数
 * @param {string} data.uid 关注用户的uid
 */
// TODO check params type
export function isFollow(data) {
    return request({
        url: '/v1/user/follow/check',
        method: 'get',
        params: data
    })
}
